package wrapper;

public class IntegerDemo {
    public static void main(String[] args) {
        //定义:
        /*
        Integer i1 = new Integer(5);
        Integer i2 = new Integer(5);
        System.out.println(i1==i2);//false.==比较的是地址
        System.out.println(i1.equals(i2));//true.包装类重写了

        //valueOf()方法会复用1个字节(-127~128)范围内的数据,建议使用valueOf()
        Integer i3 = Integer.valueOf(5);//当为500时
        Integer i4 = Integer.valueOf(5);//当为500时
        System.out.println(i3==i4);//true//500时:false
        System.out.println(i3.equals(i4));//true.包装类重写了
        */
        //基本类型与包装类型之间互转:
        /*
        Integer i = Integer.valueOf(5);//基本类型转为包装类型
        int j = i.intValue();//包装类型转换为基本类型
         */
            //触发自动装箱特性,会被编译为:Integer i = Integer.valueOf(5);
        Integer i = 5;//基本类型到包装类--装箱
            //触发自动拆箱特性,会被编译为:int j = i.intValue();
        int j = i;//包装类型到基本类型--拆箱

        //常用操作:
        //1)通过包装类获取基本类型的取值范围:
        int max = Integer.MAX_VALUE;
        int min = Integer.MIN_VALUE;
        System.out.println("int最大值为:"+max+",最小值为:"+min);
        long max1 = Long.MAX_VALUE;
        long min1 = Long.MIN_VALUE;
        System.out.println("long最大值为"+max1+",最小值为:"+min1);

        //2)将字符串转换为对应的基本类型--必须熟练掌握
        String s1 = "40";
        int age = Integer.parseInt(s1);//将字符串s1转换为int类型并赋值给age
        System.out.println(age);//40--int类型

        String s2 = "123.456";
        double price = Double.parseDouble(s2);
        System.out.println(price);

    }
}
